home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Skunkware 98
/
Skunkware 98.iso
/
src
/
mail
/
db.1.85.tar.gz
/
db.1.85.tar
/
db.1.85
/
PORT
/
linux
/
OTHER_PATCHES
< prev
Wrap
Text File
|
1993-11-30
|
883b
|
30 lines
*** PORT/db/recno/rec_open.c.orig 1993/10/13 02:01:31
--- PORT/db/recno/rec_open.c 1993/10/13 02:20:47
***************
*** 159,167 ****
--- 159,182 ----
SET(t, R_EOF);
else {
t->bt_msize = sb.st_size;
+ /*
+ * hack :
+ *
+ * The Linux kernel mmap() semantics are broken :
+ *
+ * Under Linux, read only private mappings cause write only and read/write
+ * opens to fail with errno=ETXTBSY. Shared read only mappings should work
+ * fine though, but I'm not familiar enough with the code to ascertain that
+ * a MAP_SHARED mapping would be safe so I use the non-mmap'd version
+ * instead.
+ *
+ */
+
+ #if !defined(linux)
if ((t->bt_smap = mmap(NULL, t->bt_msize,
PROT_READ, MAP_PRIVATE, rfd,
(off_t)0)) == (caddr_t)-1)
+ #endif
goto slow;
t->bt_cmap = t->bt_smap;
t->bt_emap = t->bt_smap + sb.st_size;